const path = require('path');
const fs = require('fs');
// const { Readable } = require('stream');

const mkdirsSync = (dirname) => {
    if (fs.existsSync(dirname)) {
        return true;
    } else {
        if (mkdirsSync(path.dirname(dirname))) {
            fs.mkdirSync(dirname);
            return true;
        }
    }
}

const del = (p) => { 
    let arr = fs.readdirSync(p); 
    for(var i in arr){ 
        //读取文件信息，以便于判断是否是一个文件或目录 
        var stats=fs.statSync(p+'/'+arr[i]); 
        if(stats.isFile()){ 
            //判断为真，是文件则执行删除文件 
            fs.unlinkSync(p+'/'+arr[i]); 
        }else{ 
            //判断为假就是文件夹，就调用自己，递归的入口 
            del(p+'/'+arr[i]); 
        } 
    } 
    //删除空目录 
    fs.rmdirSync(p); 
} 

// const mergeFiles = (inputPathList, outputPath, chunkSize) => {
//     const fd = fs.openSync(outputPath, 'w+');
//     const output = fs.createWriteStream(outputPath);
//     const inputList = inputPathList.map((path) => {
//         return fs.createReadStream(path, {
//             // 相当于控制水桶大小
//             highWaterMark: chunkSize // 控制流每次 on data 的大小，默认是16kb
//         });
//     });
//     console.log(inputList)
//     return new Promise((resolve, reject) => {
//         var multiStream = new multistream(inputList);
//         multiStream.pipe(output);
//         multiStream.on('end', () => {
//             fs.closeSync(fd);
//             resolve(true);
//         });
//         multiStream.on('error', (err) => {
//             console.log(err)
//             fs.closeSync(fd);
//             reject(false);
//         });
//     });
// }

// const bufferToStream = (binary) => {
//     const readableInstanceStream = new Readable({
//       read() {
//         this.push(binary);
//         this.push(null);
//       }
//     });
//     return readableInstanceStream;
// }


export {mkdirsSync, del /* , bufferToStream */}